package com.cnap.multiclouldmgmt.service;

import com.cnap.multiclouldmgmt.model.RepByPage;
import com.cnap.multiclouldmgmt.model.knowledge.*;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * <类文件描述>
 *
 * @author xc
 **/
public interface HealthService {

    /**
     * 获取健康度
     *
     * @return 结果
     */
    String getHealthValue();

    /**
     * 查询所有的知识库
     *
     * @return 结果
     */
    List<KnowledgePO> getAllKnowledge();

    /**
     * 计算根因
     *
     * @param calCauseParam 参数
     */
    void calRootCause(CalCauseParam calCauseParam);

    /**
     * 分页查询
     *
     * @param queryCaseParam 参数
     * @return 结果
     */
    RepByPage<RootCaseVO> findByPage(QueryCaseParam queryCaseParam);

    /**
     * 删除根因
     *
     * @param causeId id
     * @return 结果
     */
    boolean deleteRootCauseById(String causeId);

    RepByPage<ErrorInjectSceneModel> getErrorInjectScenes(String keyword, int pageSize, int pageNo);

    void addErrorInject(ErrorConfigModel errorConfigModel,String userName) throws Exception;

    RepByPage<ErrorInjectModel> getErrorInjects(String keyword, int pageSize, int pageNo);

    void delErrorInject(int id) throws Exception;

    void stopErrorInject(int id) throws Exception;

    void runErrorInject(int id) throws Exception;
}
